package com.lxm.ymcc.web.controller;

import com.lxm.ymcc.dto.AlipayNotifyDto;
import com.lxm.ymcc.dto.PayDto;
import com.lxm.ymcc.result.JSONResult;
import com.lxm.ymcc.service.IPayService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/pay")
public class PayController {
    @Autowired
    private IPayService payService;
    @PostMapping("/apply")
    public JSONResult apayly( @RequestBody PayDto payDto){
       String html =  payService.pay(payDto);
   return JSONResult.success(html);

    }
     /*
        用来接收异步回调方法,主要是为了告诉们订单的支付状态

            如何和我们系统的业务结合？
            1.更新支付单的状态，并且生成支付流水记录【ymcc-pay】
            2.更新订单状态，【ymcc-order】
            3.维护学生的购买的课程表【ymcc-course】
            4.给这个学生的推荐人 赠送 积分【比例可以动态更改】

            要做哪些事情？
            1.接收支付宝异步回调参数【定义一个类型接收】
            2.验证签名【实例代码】
            3.验证支付状态--》根据订单号查询数据库，确认数据库数据是还未处理
            4.更改支付单状态，生成支付流水
            5.更新订单状态，【ymcc-order】--feign
            6.维护学生的购买的课程表【ymcc-course】--feign




     */

    @RequestMapping("/notify")
    public String notifyAlipay(AlipayNotifyDto alipayNotifyDto){
        return payService.notifyAlipay(alipayNotifyDto);


    }


}
